
% 1.a) Producto de vector por escalar.

v = [1,2]

pi * v 
ans = 

   3.1416   6.2832

% 1.b) Producto de vectores de orden 2 x 1 por 1 x 2 da como resultado una matriz de orden 2 x 2.

v' * v =  
ans =
    1  2
    2  4
    
% 1.c) Raiz de matriz.

sqrt(v' * v)
ans =

   1.0000   1.4142
   1.4142   2.0000


% 1.d) Producto de vector de orden 1 x 2 por otro de orden 4 x 1 es un error.
 
u = [1 2 3 4 ] 

v * u'
error: operator *: nonconformant arguments (op1 is 1x2, op2 is 4x1)


% 1.e) Producto elemento a elemento. Cada elemento de v con el subvector de u comprendido entre la posicion 2 y 3.

v.*u(2:3)

ans =

   2   6


% 1.f) Producto de matriz de orden 2x2 por vector de orden 2 x 1 es un vector de orden 2 x 1.

A = [ 1 2 ; 3 4]
A =

   1   2
   3   4

A * v'
ans =

    5
   11

% 1.g) Exponenciacion sobre matriz cuadrada.

A^2
ans =

    7   10
   15   22


% 1.h) Producto elemento a elemento entre  A y A.

A.* A 
ans =

    1    4
    9   16
    
% Es equivalente a  A.^2


% 1.i) Producto de matrices:  A de orden 2 x 2 por B de orden 2 x 3.
 
B = [1 2  3 ; 4  5 6]
B =

   1   2   3
   4   5   6

A*B
ans =

    9   12   15
   19   26   33



% 1.j) Producto elemento a elemento de A con elementos en la posicion 1 y 2 de la primera fila de B
% y con los elementos en la posicion 2 y 3 de la segunda fila de B.

A.*B(1:2,2:3)

ans =

    2    6
   15   24


% 2)

a = 1 + 2^(-53); b = a-1
b = 0  % aca  "a"  vale  1

a = 1 + 2^(-52); b = a-1
b =  2.2204e-16   % aca  "a"  vale a =  1.0000

% En una aritmética de coma flotante, se llama épsilon de la máquina (ε-mach) al menor valor de una determinada máquina que cumple lo siguiente:
% 1,0 + ε-mach > 1,0

% El épsilon es el número decimal más pequeño que, sumado a 1, la computadora nos arroja un valor diferente de 1, es decir, que no es redondeado.

% Representa la exactitud relativa de la aritmética del computador. La existencia del épsilon de la máquina es una consecuencia de la precisión finita de la aritmética en coma flotante.

% Conlcusion: hasta  2^(-52) no perdemos informacion.Luego como  2^(-53) excede esa cota inferior comienza el redondeo por eso el resultado termina dando 0 perdiendose informacion


% 3)

 i = 0
 A = 2 ^ i
 while(~isinf([A]))
 ++i
 A = 2 ^ i
 endwhile

 .
 .
 .
ans =  1016
A =  7.0222e+305
ans =  1017
A =  1.4044e+306
ans =  1018
A =  2.8089e+306
ans =  1019
A =  5.6178e+306
ans =  1020
A =  1.1236e+307
ans =  1021
A =  2.2471e+307
ans =  1022
A =  4.4942e+307
ans =  1023
A =  8.9885e+307
ans =  1024
A = Inf
 
 
% Luego de 1024 iteraciones vemos que el mayor numero positivo en coma  flotante soportado es 2^1024-1
 

 A = 1
 while(A > 0)
 A = A / 2
 endwhile
  .
  .
  .
A =  6.3240e-322
A =  3.1620e-322
A =  1.5810e-322
A =  7.9051e-323
A =  3.9525e-323
A =  1.9763e-323
A =  9.8813e-324
A =  4.9407e-324
A = 0
 
% Underflow: 4.9407e-324


% 4)  

x = 0; while x~=10
x = x + 0.1
fprintf("valor de x\n", x)
end

% el programa no termina por un problema de representacion.
% el invariante nunca deja de cumplirse ya que  para la representacion de maquina 10 != 10.0000. 


%si se incrementa de a 0.5 entonces si termina el programa.

x = 0; while x~=10
x = x + 0.5
fprintf("valor de x\n", x)
end


% 5.a) Resuelto en factorial.m.

% 5.b) lookfor "fact" .Es como un man page.

% 5.c) Resuelto en el item a).

% 6) Resuelto en mayor.m

% 7) Resuelto en pot.m y en callerpot.m

% 8) Resuelto en  sertieSn.m  y callerSerieSn.m

% 9) Resuelto en buena.m y en mala.m

% 10) Resuelto en horn.m

